var layer;
var form;
var table;
var colorpicker;
var dropdown;
var laydate;
var tempId;
var dictSetting;
var layIndex;

/**	
 * layui 组件引入
 * @returns
 */
layui.use([ 'layer',  'form',  'table', 'laydate',  'colorpicker', "dropdown" ],  function() {
	layer = layui.layer;
	form = layui.form;
	table = layui.table;
	laydate = layui.laydate; 
	colorpicker = layui.colorpicker;
	dropdown = layui.dropdown;

	// 执行一个 table 实例=============================================================================================
	var tableId = table.render({
		elem : '#data_table', 
		id : 'data_table', 
		url : ctxPath+'sys/dict/select',
		title : '数据列表',
		//height:'full-120',
		skin:'line',
		//size:"sm", 
		page : true,
		toolbar : "#toolberLeft",
		cols : [[
			{type : 'checkbox', fixed : 'left'},
			{field : 'dictName', title : '字典名称', minWidth: '150', align : 'center', hide: setColumnHide("dictName")},
			{field : 'dictCode', title : '字典编码', minWidth: '150', align : 'center', sort : true, hide: setColumnHide("dictCode")},
			{field : 'dictType', title : '标签类型', minWidth: '150', sort : true, align : 'center', hide: setColumnHide("dictType"),
				templet: function (d) {
					if(d.dictType == 1){
						return  "单选框";
					}if(d.dictType == 2){
						return  "复选框";
					}else{
						return "下拉框";
					}
				}
			},  
			{field : 'createDate', align : 'center', minWidth: '200', title : '创建时间', hide: setColumnHide("createDate")},
			{field : 'updateDate', align : 'center', minWidth: '200', title : '更新时间', hide: setColumnHide("updateDate")},
			{field : 'remarks', align : 'center', minWidth: '200', title : '备注', hide: setColumnHide("remarks")},
			{fixed : isRight(), align : 'center', minWidth: '200', title : '操作', toolbar : '#toolRow'}
		]]
	});
	
	// 头部左侧事件=============================================================================================
	table.on('toolbar(data_table)',  function(obj) {
		if (obj.event === 'search') {
			openWindowSearch('search_form', "条件搜索", '100%', 'auto', false, 0, false, false, null, 0.2, true)
		}else if(obj.event === 'add'){
			openWindow('data_form', "字典新增", '500px', '500px', false, 0, false, false, null, 0.2, false)
		}else if(obj.event === 'delete'){
            deleteBatch(table, 'data_table', "id", ctxPath+'sys/dict/deleteBatch')
		}
	})
	
	// 行监听事件=============================================================================================
	table.on('tool(data_table)',  function(obj) {
		var down_this = this;
		var data = obj.data;
		if(obj.event === 'setting') {
			tempId = data.id;
			dictSetting.openSetting(tempId);
		} else if(obj.event === 'all'){
			dropdown.render({
				elem: down_this
				,show: true // 外部事件触发即显示
				,data: [{
					title: '查看', id: 'detail'
				}, {
					title: '编辑', id: 'edit'
				}, {
					title: '删除', id: 'del'
				}]
				,click: function(d, othis){
					if(d.id === 'detail'){
						openWindow('data_form', "字典查看", '500px', '500px', false, 0, false, false, data, 0.2, false)
					} else if(d.id === 'edit'){
						openWindow('data_form', "字典编辑", '500px', '500px', false, 0, false, false, data, 0.2, false)
					} else if(d.id === 'del'){
						deleteRow(table, 'data_table', data, ctxPath+'sys/dict/delete'+"?id="+data.id);
					}
				}
				,align: 'right' //右对齐弹出（v2.6.8 新增）
				,style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
			});
		}
	});
	
	// 查询=============================================================================================
	form.on('submit(submitSearch)',  function(data) {
		reloadTable(tableId, 'data_table', data.field);
		return false;
	})
	
	// 提交=============================================================================================
	form.on('submit(submitForm)',  function(data) {
		saveData(tableId, 'data_table', data.field, ctxPath+'sys/dict/save', '#data_form');
		return false;
	})

	// 字典参数设置=============================================================================================
	dictSetting = {
		openSetting : function(did){
			openWindowRB('setting_form', "<i class='layui-icon layui-icon-set' style='position: relative;right: 3px;'></i>字典参数设置", '660px', '100%', false, 0, false, false, null, 0.2, false, function(){
				// 执行一个 table 实例
				var settingTable = table.render({
					elem : '#setting_table', 
					id : 'setting_table', 
					url : ctxPath+'sys/dict/selectSetting'+"?did="+did,
					height:'full-230', 
					page : true, // 开启分页
					toolbar : "#toolberLeftSetting", 
					defaultToolbar: false, // ['filter', 'print', 'exports']
					cols : [ [ // 表头
						{field : 'sort', title : '排序号', width: '80', align : 'center', hide: setColumnHide("sort"), fixed: 'left'}, 
						{field : 'remarks', title : '名称', align : 'center', width: '150', hide: setColumnHide("remarks")},
						{field : 'code', title : '参数编码', width: '100', align : 'center', hide: setColumnHide("code")}, 
						{field : 'state', title : '状态', width: '100', align : 'center', hide: setColumnHide("state"), toolbar : '#switchRow'},  
						{field : 'dictColor', align : 'center', width: '100', title : '颜色', hide: setColumnHide("dictColor"),
							templet: function (d) {
								return '<span style="background:'+d.dictColor+';width:10px;height:10px;display: inline-block;"></span>';
							}
						}, 
						{align : 'center', width: '100', title : '操作', toolbar : '#toolRowSetting'} 
						// fixed : 'right',
					] ]
				});
				// 头部左侧事件=============================================================================================
				table.on('toolbar(setting_table)',  function(obj) {
					if(obj.event === 'add'){
						layIndex = openWindow('setting_data_form', "参数添加", '500px', '500px', false, 0, false, false, null, 0.2, false, function(){
							// 颜色
							colorpicker.render({
								elem: '#color-form'
							    ,color: '#65c0dc'
							    ,done: function(color){
							      $('#color-form-input').val(color);
							    }
							});
						})
					}
				})
				
				// 行监听事件=============================================================================================
				table.on('tool(setting_table)',  function(obj) {
					var data = obj.data;
					if (obj.event === 'del') {
						deleteRow(settingTable, 'setting_table', data, ctxPath+'sys/dict/deleteSetting'+"?id="+data.id);
					}else if(obj.event === 'edit') {
						layIndex = openWindow('setting_data_form', "参数编辑", '500px', '500px', false, 0, false, false, data, 0.2, false, function(res){
							// 颜色
							colorpicker.render({
								elem: '#color-form'
							    ,color: res.dictColor?res.dictColor:'#65c0dc'
							    ,done: function(color){
							      $('#color-form-input').val(color);
							    }
							});
						})
					}
				});
				
				// 提交=============================================================================================
				form.on('submit(submitSettingForm)',  function(data) {
					data.field.did = tempId;
					saveData(settingTable, 'setting_table', data.field, ctxPath+'sys/dict/saveSetting', '#setting_data_form', null, layIndex);
					return false;
				})
				
				// 开关=============================================================================================
				form.on('switch(stateSwitch)', function(data) {
					var id = $(this).attr('tid');
				    var state = data.elem.checked?"1":"0";
				    getAjax(ctxPath+"sys/dict/updateSettingState", {id: id, state: state}, 'post', function (res) {
				    	showTips(res.msg);
				    })
					return false;
				})
				
			})
		}
	}

	
})













